package fi.saarinen.simulator;

/**
 * Interface for all instruction that can be executed.
 * 
 * @author jsaarinen
 */
public interface Instruction
{
  /**
   * Executes an instruction.
   * 
   * @param context
   *  The M68000 context including register contents etc.
   *  
   * @param opcode
   *  Opcode of this instruction. More can be asked from the context.
   * 
   * @param programCounter
   *  Current PC value.
   *  
   * @return
   *  The next PC value.
   */
  int execute(M68000Context context, int opcode, int programCounter);
}
